// import {
//   Injectable,
//   CanActivate,
//   UnauthorizedException,
//   ExecutionContext,
// } from '@nestjs/common';
// import axios from 'axios';
// import { pick } from 'lodash';

// /**
//  * jeecg鉴权守卫
//  */
// @Injectable()
// export class JeecgAuthGuard implements CanActivate {
//   async canActivate(context: ExecutionContext) {
//     // 开发环境，或者， VALIDATE_JEECG_JWT 不是 1 就跳过鉴权
//     if (
//       process.env.NODE_ENV == 'development' ||
//       process.env.VALIDATE_JEECG_JWT != '1'
//     ) {
//       return true;
//     }
//     const request = context.switchToHttp().getRequest();
//     const h = pick(request.headers, [
//       'referer',
//       'x-access-token',
//       'origin',
//       'authorization',
//     ]);
//     // 因为简单请求不会带origin头
//     // 后端地址判定 先从header中读取 jeecg-server 字段，如果没有就用 referer 的域名
//     const jeecgDomain = request.headers['jeecg-server']
//       ? request.headers['jeecg-server']
//       : new URL(h.referer).origin;
//     try {
//       await axios({
//         method: 'get',
//         url: `${jeecgDomain}/soft/sys/checkToken`,
//         headers: h,
//       });
//       return true;
//     } catch (error) {
//       console.error(error);
//       throw new UnauthorizedException({
//         code: 401,
//         message: 'Token失效，请重新登录！',
//       });
//     }
//   }
// }
